//关键词typedef    对类型重命名

#include <stdio.h>

//typedef 对变量重命名

/*
typedef unsigned int uint;

int main()
{
    unsigned int num = 0;
    uint num2 = 1;
}
*/


//static
//1.修饰局部变量
//2.修饰全局变量
/*全局变量*/
static int g_val = 2022;/*static修饰全局变量的时候，这个全局变量的外部链接属性就变成了内部链接属性。
其他源文件(.c)就不能再使用这个全局变量了*/
extern int g_val;//其他源文件使用需要声明外部符号
//3.修饰函数 (和修饰全局变量一样)


/*
void test()
{
    int a = 1;
    a++;
    printf("%d ",a);
}

int main()
{
    int i = 0;
    while(i < 10){
        test();
        i++;
    }
    return 0;
}
//运行结果是2 2 2 2 2 2 2 2 2 2
*/

void test()
{
    static int a = 1;//static修饰局部变量的时候，局部变量出了作用域，不销毁
    //本质上，static修饰局部变量的时候，改变了变量的存储位置，影响了变量的生命周期，使变量的生命周期和程序一样长
    a++;
    printf("%d ",a);
}

int main()
{
    int i = 0;
    while(i < 10){
        test();
        i++;
    }
    return 0;
}
//运行结果是2 3 4 5 6 7 8 9 10 11

/*
int main()
{
    //寄存器变量
    register int num = 3;//建议3存放在寄存器中
    
    return 0;
}
















